package com.ruoyi.spspublic.service;

import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.spspublic.domain.TMisShortmessage;

import java.util.List;

/**
 * 短信或者邮件的发送记录，只保持最后一条记录Service接口
 *
 * @author wangwei
 * @date 2022-05-11
 */
public interface ITMisShortmessageService {
  /**
   * 查询短信或者邮件的发送记录，只保持最后一条记录
   *
   * @param ctId 短信或者邮件的发送记录，只保持最后一条记录ID
   * @return 短信或者邮件的发送记录，只保持最后一条记录
   */
  public TMisShortmessage selectTMisShortmessageById(String ctId);

  /**
   * 查询短信或者邮件的发送记录，只保持最后一条记录列表
   *
   * @param tMisShortmessage 短信或者邮件的发送记录，只保持最后一条记录
   * @return 短信或者邮件的发送记录，只保持最后一条记录集合
   */
  public List<TMisShortmessage> selectTMisShortmessageList(TMisShortmessage tMisShortmessage);

  /**
   * 新增短信或者邮件的发送记录，只保持最后一条记录
   *
   * @param tMisShortmessage 短信或者邮件的发送记录，只保持最后一条记录
   * @return 结果
   */
  public int insertTMisShortmessage(TMisShortmessage tMisShortmessage);

  /**
   * 修改短信或者邮件的发送记录，只保持最后一条记录
   *
   * @param tMisShortmessage 短信或者邮件的发送记录，只保持最后一条记录
   * @return 结果
   */
  public int updateTMisShortmessage(TMisShortmessage tMisShortmessage);

  /**
   * 批量删除短信或者邮件的发送记录，只保持最后一条记录
   *
   * @param ctIds 需要删除的短信或者邮件的发送记录，只保持最后一条记录ID
   * @return 结果
   */
  public int deleteTMisShortmessageByIds(String[] ctIds);

  /**
   * 删除短信或者邮件的发送记录，只保持最后一条记录信息
   *
   * @param ctId 短信或者邮件的发送记录，只保持最后一条记录ID
   * @return 结果
   */
  public int deleteTMisShortmessageById(String ctId);

  /**
   * 发送短信
   *
   * @param telOrMail
   * @param sendType ( 0 vpn接口 1 短信验证码 2 其他公用信息（但未设置签名）
   * @param msg
   * @return
   */
  @Log(title = "发送短信", businessType = BusinessType.OTHER)
  public AjaxResult sendMessageInfo(String telOrMail, String sendType, String msg);
}
